A stereoscopic camera arrangement is an element made of two camera units, assembled in a stereoscopic module. Stereoscopy (also referred to as “stereoscopics” or “3D imaging”) is a technique for creating or enhancing the illusion of depth in an image. In other words, it is the impression of depth that is perceived when a scene is viewed with both eyes by someone with normal binocular vision which is responsible for creating two slightly different images of the scene in the two eyes due to the eyes'/camera's different locations.
Combining 3D information derived from stereoscopic images, and particularly for video streams, requires search and comparison of a large number of pixels to be held for each pair of images, each derived from a different image capturing device.
Stereo matching algorithms are used to solve the compatibility in stereo images by using feature-, phase-, or area-based matching to calculate disparities in the images. Feature-based matching searches are used for searching characteristics in the images, like edges or curves, which in turn are used for calculating the best matches according to the similarities found. Phase-based algorithms band pass filter the images and extract their phase. Area-based algorithms operate on blocks of pixels from both images and calculate their level of matching. This can be done in parallel for all analyzed pixels. When using a constant block size over the whole image, called box filtering, these algorithms are especially amenable to parallel and hardware-based solutions.
Color information may be used to improve the matching performance significantly. However, the required hardware resources for processing color images on embedded real-time systems are still very high.
The depth to be detected, dictates a disparity range to be checked, and the depth calculation under real time conditions typically consumes quite a substantial amount of the CPU available at the processing device.
Hardware based solutions implementing stereoscopic matching algorithms are rather complicated and require substantial silicon footprint. The silicon size depends monotonically and almost linearly on the number of disparities that the hardware utilizes for carrying out these stereoscopic matching algorithms matching. Consequently, hardware based solutions for stereoscopic matching are designed to handle only a limited range of disparities which may cover only typical cases which system may face.
However, there are practical implementations, in particularly when depth has a large value, that require that the disparity range used when carrying out the stereoscopic matching algorithm, is substantially higher than the disparity range available in hardware based solutions. This problem is not solved by the prior art hardware based solutions, and therefore, there is a need to solve the problem of how to enable the use of higher disparity ranges while using hardware based stereoscopic matching algorithms, where the hardware is restricted to the use of a substantially lower ranges of disparities.